package cn.example.demo.common.secure.annotation;

import java.lang.annotation.*;

import static cn.example.demo.common.db.constant.DbFieldConstant.CREATE_USER;

/**
 * <p>
 * 数据范围激活
 * 在要拦截的方法标记此注解
 * </p>
 *
 * @author Lizuxian
 * @create 2022/4/16 16:07
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
public @interface DataScopeEnable {
    /**
     * 是否关联查询
     *
     * @return
     */
    boolean isJoinQuery() default false;

    /**
     * 关联查询时指定主表别名
     *
     * @return
     */
    String mainTableAlias() default "t1";

    /**
     * 表数据所属用户指定列名
     *
     * @return
     */
    String userIdField() default CREATE_USER;
}
